package com.hzchendou.blog.code.chapter02.example02;

/**
 * Singleton单例模式，实现线程安全，并且提高效率
 *
 * @Date: 2022-07-11 14:56
 * @since: 1.0
 */
public class Example02_2 {

    private static Example02_2 instance;

    private Example02_2() {}

    /**
     * 使用二次确认的方式减少锁范围，可以在大部分情况下降低加锁操作
     *
     * @return
     */
    public static Example02_2 getInstance() {
        if (instance != null) {
            return instance;
        }
        ///在类对象上进行加锁操作
        synchronized (Example02_2.class) {
            if (instance == null) {
                instance = new Example02_2();
            }
            return instance;
        }
    }

}
